0 REM WUG BY JAMES HORN 1 REM COMPUSERVE ID: 74616,131 2 REM ARCADE TYPE GAME FOR C-64 WITH 3 REM JOYSTICK(S) 5 GOTO500 10 IFPEEK(17153)AND16THEN70 20 SYS16896:IFPEEK(17152)<>42THEN40 30 SC=SC+5:PRINTTAB(22-LEN(STR$(SC)))SC;CHR$(145):ND=ND+1:IFND=NNTHEN290 40 F=INT(RND(1)*(24/BS-1)):POKE17166,48+(F+1)*BS*8:SYS16688 50 F=INT(RND(1)*(36/BS+1)):E=30+BS*F*8:F=EAND256:E=E-F:POKE17167,E 60 POKE17168,F/8:SYS16782:GOTO10 70 POKES+11,33:FORF=100TO20STEP-10:FORE=FTOF-10STEP-1:POKES+8,E:NEXT 80 FORE=F-10TOF-5:POKES+8,E:NEXTE,F:POKES+11,0:FORF=1TO2000:NEXT:POKEV+21,0 85 NM(CP)=NM(CP)-1:GOSUB140:IFNM(CP)=0THENGOSUB155:IFCP=PLTHENSC(CP)=SC:GOTO175 93 IFPL=1THEN450 95 SC(CP)=SC:ND(CP)=ND:CP=ABS(CP-3):SC=SC(CP):NN=NN(CP):ND=ND(CP):BS=BS(CP) 100 POKE648,4+(CP-1)*44:POKEV+24,(PEEK(V+24)AND15)OR(16+(CP-1)*176) 105 GOSUB170:IFNM(CP)=3THEN300 110 GOTO440 125 POKE214,7:PRINT:FORF=0TO6:PRINTTAB(15)Z$;CHR$(145):FORE=0TO300:NEXT 130 PRINTTAB(15)" "CHR$(145):REM 9 SPACES 135 FORE=0TO300:NEXTE,F:RETURN 140 E=9:IFBS=4THENE=5 145 POKE214,E:PRINT:PRINTTAB(17)" "CHR$(145):REM 5 SPACES 150 PRINTTAB(23-NM(CP)*2)LEFT$(C$,NM(CP)*2):RETURN 155 Z$="GAME OVER":GOSUB125:RETURN 160 Z$="PLAYER "+STR$(CP):GOSUB125:RETURN 165 Z$="GET READY":GOSUB125:RETURN 170 F=7+44*(CP-1):POKE16749,F:POKE16839,F:POKE16983,F:POKE16902,2-CP:RETURN 175 CP=0:IFSC(2)>HSTHENHS=SC(2):CP=2 178 IFSC(1)>HSTHENHS=SC(1):CP=1 181 IFCP=0THEN200 184 PRINTCHR$(147):PRINTTAB(13)"GREAT SCORE!":PRINT:PRINT:IFPL=1THEN188 186 PRINTTAB(15)"PLAYER"CP:PRINT 188 PRINT:PRINTTAB(16-LEN(STR$(HS))/2)"SCORE:"HS 189 POKE214,10:PRINT:HS$="":PRINTTAB(9)"ENTER YOUR INITIALS" 190 PRINT:PRINTTAB(8)"ERASE WITH THE '"CHR$(95)"' KEY":PRINT 191 PRINTTAB(8)"END BY PRESSING RETURN":POKE214,18:PRINT:FORF=1TO10:GETZ$:NEXT 192 PRINTCHR$(145)TAB(16)HS$" ":REM 5 SPACES 194 GETZ$:IFZ$=""THEN194 195 IFZ$=CHR$(95)ANDLEN(HS$)>0THENHS$=LEFT$(HS$,LEN(HS$)-2):GOTO192 196 IFASC(Z$)=13THEN200 197 IFZ$<"A"ORZ$>"Z"THEN194 198 IFLEN(HS$)>4THEN194 199 HS$=HS$+Z$+" ":GOTO192 200 E=PEEK(V+23):PRINTCHR$(147):POKEV+24,(PEEK(V+24)AND15)OR16:POKE648,4 205 POKEV+21,1:FORF=1TO10:GETZ$:NEXT:IFHS=0THEN220 210 POKE214,6:PRINT:PRINTTAB(14)"HIGH SCORE":PRINT 215 PRINTTAB(16-LEN(STR$(HS))/2)HS$;HS 220 POKE214,19:PRINT:PRINTTAB(6)"PRESS: 'F1' FOR ONE PLAYER":PRINT 230 PRINTTAB(13)"'F3' FOR TWO PLAYERS" 240 E=ABS(E-1):POKEV+21,0:POKEV+23,E:POKEV+29,E:POKEV,152+12*(1-E) 250 POKEV+21,1:POKES+4,17:POKE2,5:F=0 255 GETZ$:IFZ$>CHR$(132)ANDZ$2THENF=2 305 ONF+1GOTO310,340,370 307 PRINT:PRINT" ";:U$="*":FORE=1TO37:PRINTU$;:NEXT:PRINT:RETURN 310 FORF=0TO7:IFF>0THENGOSUB307 316 U$=CHR$(174)+"*"+CHR$(176):FORE=1TO13:PRINTU$;:NEXT:PRINT 319 U$=CHR$(189)+"*"+CHR$(173):FORE=1TO13:PRINTU$;:NEXTE,F:BS(CP)=3:GOTO391 340 FORF=0TO5:IFF>0THENGOSUB307 346 U$=CHR$(174)+"*"+CHR$(176):FORE=1TO9:PRINTU$CHR$(192);:NEXT:PRINTU$ 349 U$=CHR$(221)+"*"+CHR$(221):FORE=1TO9:PRINTU$" ";:NEXT:PRINTU$ 352 U$=CHR$(189)+"*"+CHR$(173):FORE=1TO9:PRINTU$CHR$(192);:NEXT:PRINTU$;:NEXT 355 POKE214,4:PRINT:BS(CP)=4:E=4:GOTO394 370 FORF=0TO3:IFF>0THENGOSUB307 376 U$=CHR$(174)+"*"+CHR$(176)+CHR$(192)+CHR$(192)+CHR$(192):PRINTU$U$U$U$U$U$; 379 PRINTMID$(U$,1,3):FORE=0TO2 382 U$=CHR$(221)+"*"+CHR$(221)+" ":PRINTU$U$U$U$U$U$;:PRINTMID$(U$,1,3):NEXT 388 U$=CHR$(189)+"*"+CHR$(173)+CHR$(192)+CHR$(192)+CHR$(192):PRINTU$U$U$U$U$U$; 389 PRINTMID$(U$,1,3);:NEXT:BS(CP)=6 391 POKE214,6:PRINT:E=2 394 U$=CHR$(192):PRINTTAB(14)CHR$(176)U$U$U$U$U$U$U$U$U$CHR$(174) 397 FORF=0TOE:U$=CHR$(221):PRINTTAB(14)U$" "U$:NEXT:REM 9 SPACES 400 U$=CHR$(192):PRINTTAB(14)CHR$(173)U$U$U$U$U$U$U$U$U$CHR$(189) 412 BS=BS(CP):G=(CP-1)*11264:FORF=1063TO2023STEP40:POKEF+G,160:POKEF+S,11:NEXT 421 NN=24/BS*37+(36/BS+1)*24/BS*(BS-1)-46-18*(1-INT(BS/6)):NN(CP)=NN:ND=0 427 ND(CP)=0:POKE1523+G,32:FORA=1024TO1062:POKEA+G,0:POKEA+960+G,0:NEXT 430 FORA=1024TO1984STEPBS*40:POKEA+G,0:POKEA+38+G,0:NEXT:FORA=0TO2 433 F=INT(RND(1)*(917-BS*80))+1065+BS*40:IFPEEK(F+G)<>42THEN433 436 D=0:FORE=0TOA-1:B=ABS(B(CP,E)-F):C=B/40:IFB<40ORC=INT(B/40)THEND=1 438 NEXT:IFD=1THEN433 439 POKEF+G,91:B(CP,A)=F:NEXT:GOSUB140 440 F=CS(CP):F=F-INT((F)/6)*6:E=CC(F,0):A=9-F+INT((BS(CP)-4)/2) 441 IFCS(CP)>11THENA=5 442 POKE16860,A:POKE16757,A 444 POKE16641,7+44*(CP-1):POKE16683,1:POKE16679,127:POKE16680,176:SYS16640 445 FORA=0TO7:POKE14672+A,PEEK(15296+E*8+A):NEXT 447 F=CC(F,1):POKE16683,F:POKE16679,42:POKE16680,208:SYS16640 449 FORA=0TO2:POKEB(CP,A)+S,1:NEXT:IFPL=2THENGOSUB160:GOTO452 450 GOSUB165 452 POKE214,7:PRINT:PRINTTAB(17)"SCORE":IFBS(CP)=4THENPRINT 454 PRINTTAB(22-LEN(STR$(SC)))SC;CHR$(145) 456 POKEV+8,173:POKEV+9,142:POKEV+16,0:F=PEEK(53278) 459 FORF=0TO7:POKEF+17158,0:NEXT:FORF=10TO13:POKEV+F,0:NEXT 462 POKE17057,243:POKE17058,5+44*(CP-1):SYS17108:POKE17153,0 465 POKE2044+(CP-1)*11264,220:POKE251,0:POKE253,0:POKEV+21,112:GOTO10 500 POKE52,48:POKE56,48:CLR 503 BS=0:E=0:F=0:SC=0:ND=0:NN=0:V=53248:S=54272:DIMCC(6,1),B(2,2),A(31) 506 PRINTCHR$(147)CHR$(142)CHR$(8)CHR$(5):POKEV+32,11:POKEV+33,0 507 PRINT"[147]SETTING UP... PLEASE BE PATIENT!" 510 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251:FORF=0TO2047 515 POKEF+14336,PEEK(F+53248):NEXT:POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1 520 POKE53272,(PEEK(53272)AND240)+14 525 REM *** COLOR FRUIT ON SCREEN *** 530 E=0:FORF=0TO47:READA:POKEF+16640,A:E=E+A:NEXT 535 IFE<>5305THENPRINT"ERROR IN DATA LINES 540-590":END 540 DATA 169,7,141,37,65,169,219,141,46 550 DATA 65,160,0,32,35,65,162,4,160 560 DATA 231,32,35,65,136,208,250,206 570 DATA 37,65,206,46,65,202,208,241,96 580 DATA 185,0,7,201,42,208,5,169,14 590 DATA 153,0,219,96 600 REM *** ARROW MOVEMENT *** 610 E=0:FORF=0TO147:READA:POKEF+16384,A:E=E+A:NEXT 615 IFE<>17648THENPRINT"ERROR IN DATA LINES 630-795":END 620 SYS 16384 630 DATA 173,21,3,201,64,240,24,120,173 640 DATA 20,3,141,146,64,173,21,3,141 650 DATA 147,64,169,32,141,20,3,169,64 660 DATA 141,21,3,88,96,165,251,16,45 670 DATA 41,63,170,206,12,208,208,8,173 680 DATA 16,208,73,64,141,16,208,165 690 DATA 251,41,64,133,206,173,16,208 700 DATA 41,64,197,206,208,11,173,12 710 DATA 208,197,252,208,4,134,251,240 720 DATA 3,202,208,214,165,253,16,20,41 730 DATA 63,170,206,11,208,173,11,208 740 DATA 197,254,208,4,134,253,240,3 750 DATA 202,208,239,173,30,208,44,83 760 DATA 64,240,19,141,1,67,162,127,44 770 DATA 21,64,240,2,134,253,44,124,64 780 DATA 240,2,134,251,165,2,240,9,198 790 DATA 2,208,5,169,0,141,4,212,76,49 795 DATA 234 800 REM *** SPRITE DATA *** 805 FORF=0TO583:POKEF+13760,0:NEXT 810 F=13824:FORC=0TO5:READB:FORE=0TOB 820 FORA=0TO1:READA(E*2+A) 830 POKEF,A(E*2+A):F=F+1:NEXT:F=F+1 840 NEXT:F=F+INT(B/5-1)*11:FORE=BTO0STEP-1 850 FORA=0TO1:POKEF,A(E*2+A):F=F+1:NEXT 860 F=F+1:NEXT:F=F+58-B*3*(INT((15-B)/8)+1):NEXT 870 DATA 5,3,131,15,135,30,15,56,30,120 880 DATA 252,255,252,5,193,192,225,240 890 DATA 240,120,120,28,63,30,63,255,15 900 DATA 6,0,15,0,31,128,63,192,127,224 910 DATA 102,96,230,112,198,48,207,48 920 DATA 15,0,15,0,31,128,63,192,127 930 DATA 224,240,240,224,112,6,1,69,1 940 DATA 69,0,68,0,68,36,84,36,84,213 950 DATA 85,6,81,64,81,64,17,0,17,0,21 960 DATA 24,21,24,85,86,15,3,0,3,0,9 970 DATA 128,9,128,5,64,5,64,65,4,65,4 980 DATA 85,84,85,84,5,64,5,64,85,84,85 990 DATA 84,65,4,65,4 1000 REM *** HORIZ. ARROW SETUP *** 1005 E=0:FORF=0TO88:READA:POKEF+16688,A:E=E+A:NEXT 1010 IFE<>10539THENPRINT"ERROR IN DATA LINES 1015-1120":END 1015 DATA 165,251,201 1020 DATA 127,176,72,173,9,67,240,14 1030 DATA 206,9,67,208,62,174,10,67,189 1040 DATA 127,65,133,251,96,169,48,141 1050 DATA 21,208,173,10,67,73,1,141,10 1060 DATA 67,170,189,129,65,141,39,64 1070 DATA 189,131,65,133,252,189,133,65 1080 DATA 141,12,208,189,135,65,141,254 1090 DATA 7,173,14,67,141,13,208,169,10 1100 DATA 141,9,67,169,112,141,21,208 1110 DATA 96,132,196,206,238,4,89,74,14 1120 DATA 216,217 1130 REM *** VERT. ARROW SETUP *** 1135 E=0:FORF=0TO93:READA:POKEF+16782,A:E=E+A:NEXT 1140 IFE<>11560THENPRINT"ERROR IN DATA LINES 1145-1260":END 1145 DATA 165,253 1150 DATA 201,127,176,81,173,11,67,240 1160 DATA 10,206,11,67,208,71,169,132 1170 DATA 133,253,96,169,80,141,21,208 1180 DATA 173,12,67,73,1,141,12,67,170 1190 DATA 189,129,65,141,88,64,189,230 1200 DATA 65,133,254,189,232,65,141,11 1210 DATA 208,189,234,65,141,253,7,173 1220 DATA 15,67,141,10,208,120,173,16 1230 DATA 208,41,223,13,16,67,141,16 1240 DATA 208,88,169,10,141,11,67,169 1250 DATA 112,141,21,208,96,30,254,244 1260 DATA 39,218,219 1270 REM *** PLAYER SPRITE MVMENT *** 1275 E=0:FORF=0TO223:READA:POKEF+16896,A:E=E+A:NEXT 1280 IFE<>23745THENPRINT"ERROR IN DATA LINES 1290-1415":END 1290 DATA 169,2,141,2,67,173,0,220,41 1295 DATA 15,10,10,170,160,3,189,0,68 1300 DATA 153,2,67,232,136,208,246,32 1305 DATA 164,66,141,0,67,201,32,240,36 1310 DATA 201,42,208,11,169,17,141,4 1315 DATA 212,169,5,133,2,208,21,32,212 1320 DATA 66,206,2,67,240,105,162,3,189 1325 DATA 5,67,157,2,67,202,208,247,240 1330 DATA 210,162,3,189,2,67,157,5,67 1335 DATA 202,208,247,173,3,67,141,252 1340 DATA 7,174,5,67,240,41,24,173,8 1345 DATA 208,125,24,67,141,8,208,173 1350 DATA 13,67,125,25,67,141,13,67,10 1355 DATA 10,10,10,141,29,67,120,173,16 1360 DATA 208,41,239,13,29,67,141,16 1365 DATA 208,88,16,13,24,174,4,67,189 1370 DATA 24,67,109,9,208,141,9,208,162 1375 DATA 2,189,185,66,157,160,66,202 1380 DATA 208,247,169,32,141,244,5,96 1385 DATA 174,5,67,240,5,32,192,66,208 1390 DATA 11,173,4,67,240,10,9,4,170,32 1395 DATA 192,66,173,244,5,96,169,0,96 1400 DATA 24,173,186,66,125,16,67,141 1405 DATA 186,66,173,187,66,125,17,67 1410 DATA 141,187,66,96,162,2,189,160 1415 DATA 66,157,185,66,202,208,247,96 1420 REM *** MVMENT & JYSTK DATA *** 1425 FORF=0TO11:READA:POKEF+17169,A:NEXT 1430 DATA 1,0,255,255,40,0,216,255,8,0 1440 DATA 248,255 1450 E=17427:FORF=0TO10:FORE=E+1TOE+2:READA:POKEE,A:NEXTE,F 1460 DATA 1,0,221,1,0,221,1,0,221,0,0,0 1470 DATA 3,0,220,3,0,220,3,0,220,0,0,0 1480 DATA 0,1,223,0,3,222,0,0,0 1500 REM *** FRUIT CHARACTERS *** 1503 FORF=0TO39:READA:POKEF+15296,A:NEXT 1505 DATA 0,60,102,102,126,126,60,0 1508 DATA 0,60,126,126,126,126,60,0,0 1510 DATA 32,96,112,120,62,30,0,0,54 1520 DATA 60,126,126,126,60,0,0,102,24 1530 DATA 126,126,60,24,0 1540 FORF=0TO5:READA,B:CC(F,0)=A:CC(F,1)=B:NEXT 1550 DATA 1,13,0,6,4,10,3,13,1,8,2,7 1590 FORF=0TO2:READA:FORE=0TO7:POKE13760+E*3+F,PEEK(14392+A*8+E):NEXTE,F 1600 DATA 16,14,0 1620 POKEV,164:POKEV+1,70:POKEV+28,16:POKEV+39,3:POKEV+43,1:POKEV+37,14 1625 POKEV+38,5:POKEV+44,7:POKEV+45,7:POKEV+23,0:POKEV+29,0:POKE2040,215 1630 FORE=0TO24:POKES+E,0:NEXT:POKES,31:POKES+1,21:POKES+6,240 1640 POKES+13,240:POKES+24,15:GOTO200